]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
iconGrid: Add a key-focus-in signal
authorRui Matos <tiagomatos@gmail.com>
Thu, 20 Mar 2014 13:48:58 +0000 (14:48 +0100)
committerRui Matos <tiagomatos@gmail.com>
Wed, 26 Mar 2014 10:42:33 +0000 (11:42 +0100)
This fires whenever a grid's child emits its own key-focus-in signal.

https://bugzilla.gnome.org/show_bug.cgi?id=726759

js/ui/iconGrid.js

index 51fba64f80e915f3c31509166d5d76bfbc0eedea..6bbbcb7a8284ab1bb65fd1f54e97ea65cac62999 100644 (file)
@@ -214,6 +214,20 @@ const IconGrid = new Lang.Class({
         this._grid.connect('get-preferred-width', Lang.bind(this, this._getPreferredWidth));
         this._grid.connect('get-preferred-height', Lang.bind(this, this._getPreferredHeight));
         this._grid.connect('allocate', Lang.bind(this, this._allocate));
+        this._grid.connect('actor-added', Lang.bind(this, this._childAdded));
+        this._grid.connect('actor-removed', Lang.bind(this, this._childRemoved));
+    },
+
+    _keyFocusIn: function(actor) {
+        this.emit('key-focus-in', actor);
+    },
+
+    _childAdded: function(grid, child) {
+        child._iconGridKeyFocusInId = child.connect('key-focus-in', Lang.bind(this, this._keyFocusIn));
+    },
+
+    _childRemoved: function(grid, child) {
+        child.disconnect(child._iconGridKeyFocusInId);
     },
 
     _getPreferredWidth: function (grid, forHeight, alloc) {
@@ -527,6 +541,7 @@ const IconGrid = new Lang.Class({
         }
     }
 });
+Signals.addSignalMethods(IconGrid.prototype);
 
 const PaginatedIconGrid = new Lang.Class({
     Name: 'PaginatedIconGrid',